#include <stdio.h>
#include <stdint.h>

#include "bytes_to_float.h"

// 32位浮点数转字节数组
void float32_to_bytes_array(float num, uint8_t *output) {
    int i;
    FloatByteConverter converter;
    converter.f_val = num;
    for(i=0; i<4; i++) {
        output[i] = converter.u8_bytes[i];
    }
}

// 32位浮点数转32位字节
uint32_t float32_to_u32bytes(float num) {
    FloatByteConverter converter;
    converter.f_val = num;
    return converter.u32_val;
}

// 字节数组转浮点数
float bytes_array_to_float32(const uint8_t *input) {
    int i;
    FloatByteConverter converter;
    for(i=0; i<4; i++) {
        converter.u8_bytes[i] = input[i];
    }
    return converter.f_val;
}
// 32位字节转32位浮点数
float u32bytes_to_float32(uint32_t u32_val) {
    FloatByteConverter converter;
    converter.u32_val = u32_val;
    return converter.f_val;
}

/*
int main() {
    float original = 3.1415926f;
    uint8_t byte_array[4];

    // 转换演示
    float_to_bytes(original, byte_array);
    printf("转换后的字节: %02X %02X %02X %02X\n",
           byte_array[0], byte_array[1], byte_array[2], byte_array[3]);

    float restored = bytes_to_float(byte_array);
    printf("还原后的浮点数: %.7f\n", restored);

    return 0;
}
*/
